# 数据分析题目解答(建议先赞后看，养成习惯 如果不赞，先拉出去枪毙两分钟 作者：小匠IT)
import pandas as pd

# 加载数据（请替换为实际文件路径）
file_path = r'data/25/食品网店活动效果推广分析 -原始数据(1) (1).xls'

# 读取活动效果推广分析数据
df_activity = pd.read_excel(file_path)

# 确保 '统计日期' 列是 datetime 类型
df_activity['统计日期'] = pd.to_datetime(df_activity['统计日期'])

# 显示前几行以检查数据是否正确加载
print(df_activity.head())

# 过滤出2022年2月的数据
feb_data = df_activity[df_activity['统计日期'].dt.year == 2022][df_activity['统计日期'].dt.month == 2]

# 查找直通车消耗为0的日期
no_promotion_days = feb_data[feb_data['直通车消耗'] == 0]['统计日期'].dt.date.unique()
print("2022年2月未进行直通车推广的日期有：", no_promotion_days)

# 过滤出2022年2月15日至2022年2月18日的数据
promotion_period = df_activity[(df_activity['统计日期'] >= '2022-02-15') & (df_activity['统计日期'] <= '2022-02-18')]

# 计算汇总指标
total_visitors = promotion_period['访客数'].sum()
average_conversion_rate = promotion_period['支付转化率'].mean()
total_payment_amount = promotion_period['支付金额'].sum()

# 输出汇总结果
print(f"2022年2月15日至2022年2月18日的访客总数: {total_visitors}")
print(f"平均支付转化率: {average_conversion_rate:.2%}")
print(f"总支付金额: {total_payment_amount}")

# 创建折线图展示访客数、支付转化率和支付金额的变化趋势
plt.figure(figsize=(10, 6))

plt.plot(promotion_period['统计日期'], promotion_period['访客数'], label='访客数', marker='o')
plt.plot(promotion_period['统计日期'], promotion_period['支付转化率'], label='支付转化率', marker='s')
plt.plot(promotion_period['统计日期'], promotion_period['支付金额'], label='支付金额', marker='^')

plt.title('2022年2月15日至2022年2月18日的访客数、支付转化率和支付金额')
plt.xlabel('日期')
plt.ylabel('数值')
plt.legend()
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()

output_image_path = r'output\25\推广活动期间数据表现.png'
plt.savefig(output_image_path, dpi=300, bbox_inches='tight')
plt.close()

print(f"推广活动期间的数据表现图表已保存到 {output_image_path}")